package biblioGraphiqueV2;
import java.awt.Color;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Vector;

import javax.swing.DefaultListModel;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JButton;
import javax.swing.JScrollPane;
import javax.swing.JList;
import javax.swing.border.BevelBorder;
import javax.swing.border.SoftBevelBorder;

public class VueConsultPeriodique extends Vue {
	private JTextField textFieldNomPeriodique;
	private JTextField textFieldNbParutions;
	
	private JButton btnRechercher;
	private JButton btnAnnuler;
	private JButton btnFermer;
	private JScrollPane scrollPane;
	private JList list;
	private DefaultListModel model;


	public VueConsultPeriodique(Controleur controleur) {
		super(controleur);
		setTitle("Consulter un périodique");
		setBounds(100, 100, 400, 270);
		getContentPane().setLayout(null);
		
		JLabel lblIssn = new JLabel("ISSN");
		lblIssn.setBounds(146, 12, 61, 15);
		getContentPane().add(lblIssn);
		
		btnRechercher = new JButton("Rechercher");
		btnRechercher.setBounds(71, 112, 107, 25);
		getContentPane().add(btnRechercher);
		btnRechercher.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().rechPeriodique((String)list.getSelectedValue());
				}
		});
		
		btnAnnuler = new JButton("Annuler");
		btnAnnuler.setBounds(215, 112, 107, 25);
		getContentPane().add(btnAnnuler);
		btnAnnuler.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().fermerVue(VueConsultPeriodique.this);}
		});
		
		JLabel lblNomPeriodiqie = new JLabel("Nom du périodique");
		lblNomPeriodiqie.setBounds(82, 153, 125, 15);
		getContentPane().add(lblNomPeriodiqie);
		
		textFieldNomPeriodique = new JTextField();
		textFieldNomPeriodique.setEditable(false);
		textFieldNomPeriodique.setBounds(236, 149, 114, 19);
		getContentPane().add(textFieldNomPeriodique);
		textFieldNomPeriodique.setColumns(10);
		
		JLabel lblNbParutions = new JLabel("Nombre de parutions");
		lblNbParutions.setBounds(73, 180, 134, 15);
		getContentPane().add(lblNbParutions);
		
		textFieldNbParutions = new JTextField();
		textFieldNbParutions.setEditable(false);
		textFieldNbParutions.setBounds(236, 178, 114, 19);
		getContentPane().add(textFieldNbParutions);
		textFieldNbParutions.setColumns(10);
		
		btnFermer = new JButton("Fermer");
		btnFermer.setBounds(146, 207, 107, 25);
		getContentPane().add(btnFermer);
		
		scrollPane = new JScrollPane();
		scrollPane.setBounds(215, 12, 140, 88);
		getContentPane().add(scrollPane);
		
		
		
		model = new DefaultListModel();
		alimenteIssn();
		list = new JList(model);
		list.setBorder(new SoftBevelBorder(BevelBorder.LOWERED, new Color(0, 0, 0), null, null, null));
		list.setSelectionMode(0);
		scrollPane.setViewportView(list);
		
		
		btnFermer.addActionListener(new ActionListener() {
			public void actionPerformed(ActionEvent e) {
				getControleur().fermerVue(VueConsultPeriodique.this);}
		});
	}
	
	public void alimente(String titre, int nbParutions) {
		textFieldNbParutions.setText(String.valueOf(nbParutions));
		textFieldNomPeriodique.setText(titre);
	}
	
	public void setEtat (int etat){
		switch (etat) {
		case initiale: {
			list.setEnabled(true);
			btnRechercher.setEnabled(true);
			btnAnnuler.setEnabled(true);
			btnFermer.setEnabled(false);
			break;
			}
		case inter1: {
			list.setEnabled(false);
			btnRechercher.setEnabled(false);
			btnAnnuler.setEnabled(false);
			btnFermer.setEnabled(true);
			break;
			}
		}
	}
	
	public void alimenteIssn(){
		HashMap<String, Periodique> per;
		per = getControleur().getPeriodiques();
		
		Vector<String> vec = new Vector<String>(); 

		for (String mapKey : per.keySet()) {
			String num = per.get(mapKey).getIssn();
			vec.add(num);
		}
		
		for(int i = vec.size()-1 ; i >= 0 ; i--)
		{
			model.addElement(vec.elementAt(i));
		}
	}

}